#ifndef SPEED_PID_H__

#define SPEED_PID_H__


#include "stm32f10x.h"


typedef struct {

    float target;
    float current;
    float error;
    float out;
    
    float Kp;
    float Ki;
    float Kd;
    
    // 积分限幅 的上限和下限
    float sum_upper_limit;
    float sum_lower_limit;
    
    // 输出限幅 的上限和下限
    float out_upper_limit;
    float out_lower_limit;
    

    
    /**以下的变量为pid模块私有，不建议手动操作**/
    // 上一次的误差
    float last_error ;
    float error_sum;
    
    
}  PID_TypeDef;


float pid(PID_TypeDef * pid_TypeDef);


#endif
